package caronas.util;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;

import br.com.caelum.vraptor.ioc.Component;
import caronas.modelo.Carona;
import caronas.modelo.Service;
import caronas.modelo.Usuario;

@Component
public class EmailUtils {
	private String hostAddress = "caronas.ufpb@gmail.com";
	private HtmlEmail email;
	
	public EmailUtils(){
		HtmlEmail email = new HtmlEmail();		
		email.setHostName("smtp.mandrillapp.com");
		email.setAuthentication(hostAddress, "e1222e32-e474-44c7-9f7e-dc1dba4a5a6b");
		email.setDebug(true);
		email.setSSL(true);
		email.setTLS(true);
		email.setSmtpPort(587);
		this.email = email;
		
	}
	
	public byte sentJoinNotification(Carona carona, String mensagem, Service destinatarioService, Service remetenteService){
		String msg;
		byte result;
		msg = "<p>Olá "+ destinatarioService.getName() + ", <b>"+ remetenteService.getName() + "</b> se inscreveu para a sua carona.<br />" +
				"Você pode visualizar o seu perfil no Facebook: <a href=\"http://www.facebook.com/"+remetenteService.getUsername()+" \" target=\"_new\">Visualizar perfil</a>" +
				"<p>" +remetenteService.getName()+ " escreveu a seguinte mensagem de apresentação: </p>" +
				"<blockquote>"+ mensagem+"</blockquote>" +
				"<p>Confirme a carona com "+ remetenteService.getName() + " enviando um email para "+ remetenteService.getEmail() + " ou pelo " + 
				"<a href=\"http://www.facebook.com/"+remetenteService.getUsername()+" \" target=\"_new\">Facebook</a></p>";
		try{
			email.setFrom("caronas.ufpb@gmail.com", "Caronas UFPB");
			email.setSubject("Alguém solicitou sua carona");
			email.setCharset("utf-8");
			email.addTo(destinatarioService.getEmail());
			email.setMsg(msg);
			email.send();
			result = 2;
		}catch(EmailException e){
			result = 3;
		}
		
		return result;
		
		
	}
	
	public boolean enviarContato(Service usuarioService, String mensagem){
		mensagem += "<p>Nome: "+usuarioService.getName()+ "<br />Perfil: <a href=\"http://www.facebook.com/"+ usuarioService.getUsername()+" \" target=\"_new\">Facebook</a></p>";
		try{
			email.setFrom("caronas.ufpb@gmail.com", "Contato");
			email.setSubject("Novo contato do Caronas-UFPB");
			email.setCharset("utf-8");
			email.addTo("caronas.ufpb@gmail.com");
			email.setMsg(mensagem);
			email.send();
			return true;
			
		}catch(EmailException e){
			return false;
		}
	}

}
